package org.gvp.common.util;

import java.util.UUID;

/**
 * 字符串工具类
 */
public class StringUtil {
    /**
     * 构建一个32位的uuid,不包含"-"
     */
    public static String uuid32(){
        return UUID.randomUUID().toString().replace("-", "");
    }
    /**
     * 将字符串首字母大写
     * @param str 需要转换的字符串
     * @return 首字母大写的字符串
     */
    public static String firstToUpperCase(String str){
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }

    /**
     * 字符串下划线转大驼峰命名
     * @param str 需要转换的字符串
     * @return 大驼峰命名的字符串
     */
    public static String upperCamelCase(String str){
        String[] split = str.split("_");
        StringBuilder sb = new StringBuilder();
        for (String s : split) {
            sb.append(firstToUpperCase(s));
        }
        return sb.toString();
    }

    /**
     * 字符串下划线转大驼峰命名
     * @param str 需要转换的字符串
     * @param sp 分隔符
     * @return 大驼峰命名的字符串
     */
    public static String upperCamelCase(String str,String sp){
        String[] split = str.split(sp);
        StringBuilder sb = new StringBuilder();
        for (String s : split) {
            sb.append(firstToUpperCase(s));
        }
        return sb.toString();
    }

    /**
     * 字符串下划线转小驼峰命名
     * @param str 需要转换的字符串
     * @return 小驼峰命名的字符串
     */
    public static String lowerCameCase(String str){
        String[] split = str.split("_");
        if (split.length == 1) {
            return str;
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i < split.length; i++) {
            sb.append(firstToUpperCase(split[i]));
        }
        return split[0] + sb;
    }
}
